Routing হল একটি প্রক্রিয়া যার মাধ্যমে ASP.Net Core অ্যাপ্লিকেশন ইনকামিং HTTP রিকোয়েস্টকে নির্দিষ্ট কন্ট্রোলার এবং একশন মেথডের সাথে ম্যাপ করে। রাউটিং কনফিগারেশন সঠিকভাবে না করলে অ্যাপ্লিকেশনটি সঠিকভাবে রিকোয়েস্ট প্রক্রেস করতে পারবে না। ASP.Net Core এ রাউটিং কনফিগার করা বেশ সহজ, এবং আপনি এটি Startup.cs ফাইলে করতে পারেন।
Routing কনফিগারেশনের ধাপ
Route Configuration
ASP.Net Core অ্যাপ্লিকেশনে রাউটিং কনফিগার করার জন্য সাধারণত
ConfigureমেথডেUseRoutingএবংUseEndpointsমেথড ব্যবহার করা হয়।public class Startup { public void Configure(IApplicationBuilder app, IHostingEnvironment env) { // রাউটিং কনফিগার করা app.UseRouting(); // রাউটিং সিস্টেম চালু করবে app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); } }উপরের কোডে,
MapControllerRouteমেথড দিয়ে রাউটিং প্যাটার্নটি কনফিগার করা হয়েছে। এখানে{controller=Home}মানেHomeControllerডিফল্ট কন্ট্রোলার হবে,{action=Index}মানেIndexঅ্যাকশন মেথড ডিফল্ট হবে, এবং{id?}হলো একটি অপশনাল প্যারামিটার।
Route Pattern
ASP.Net Core এ রাউটিং প্যাটার্ন সাধারণত URL প্যাটার্নের মাধ্যমে নির্ধারণ করা হয়। রাউটিং প্যাটার্নের জন্য কিছু সাধারণ টেমপ্লেট নীচে দেওয়া হল:
{controller}: URL-এ কন্ট্রোলারের নাম।{action}: URL-এ একশন মেথডের নাম।{id?}: একটি অপশনাল প্যারামিটার (যদি প্রযোজ্য হয়)।
উদাহরণস্বরূপ, যদি আমরা MapControllerRoute ব্যবহার করি:
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
এই রাউটিং প্যাটার্নটি নির্দেশ করে যে, যদি URL এর মধ্যে কোনো কন্ট্রোলার বা অ্যাকশন নাম উল্লেখ না থাকে, তাহলে ডিফল্টভাবে HomeController এর Index অ্যাকশনটি কল হবে। যদি id প্যারামিটার দেওয়া থাকে, তবে সেটি ঐ অ্যাকশনে পাস হবে।
Attribute Routing
ASP.Net Core এ আপনি Attribute Routing ব্যবহার করে URL এর সাথে কন্ট্রোলার এবং অ্যাকশন মেথড নির্দিষ্ট করতে পারেন। এর মাধ্যমে আপনি প্রতিটি কন্ট্রোলার এবং একশন মেথডে রাউটিং প্যাটার্ন নির্ধারণ করতে পারেন।
Attribute Routing উদাহরণ:
[Route("home")]
public class HomeController : Controller
{
[Route("")]
public IActionResult Index()
{
return View();
}
[Route("about")]
public IActionResult About()
{
return View();
}
}
এখানে HomeController এর Index অ্যাকশনটি /home পাথের মাধ্যমে এক্সেস হবে এবং About অ্যাকশনটি /home/about পাথের মাধ্যমে এক্সেস হবে।
Route Constraints
ASP.Net Core রাউটিং প্যাটার্নে কনস্ট্রেইন্টস ব্যবহার করে URL প্যারামিটার গুলোর বৈধতা যাচাই করা সম্ভব। যেমন, আপনি id প্যারামিটারের জন্য নির্দিষ্ট করতে পারেন যে তা একটি সংখ্যা হতে হবে।
Route Constraints উদাহরণ:
[Route("product/{id:int}")]
public IActionResult ProductDetails(int id)
{
return View();
}
এখানে {id:int} কনস্ট্রেইন্টটি নির্দেশ করে যে id প্যারামিটারটি শুধুমাত্র পূর্ণসংখ্যা হতে হবে। যদি প্যারামিটারটি অন্য ধরনের হয়, তবে রিকোয়েস্টটি ব্যর্থ হবে এবং 404 Not Found ত্রুটি দেখাবে।
Multiple Routes
একই কন্ট্রোলার বা একশন মেথডের জন্য একাধিক রাউটিং প্যাটার্ন নির্ধারণ করা যেতে পারে।
Multiple Routes উদাহরণ:
[Route("product")]
[Route("item")]
public IActionResult ProductDetails()
{
return View();
}
এখানে ProductDetails একশনটি /product এবং /item উভয় রাউটে এক্সেস করা যাবে।
সারাংশ
ASP.Net Core এ রাউটিং কনফিগার করা একটি সহজ প্রক্রিয়া। আপনি সাধারণভাবে Configure মেথডে UseRouting এবং UseEndpoints ব্যবহার করে রাউটিং প্যাটার্ন সেট করতে পারেন। এছাড়া Attribute Routing, Route Constraints, এবং Multiple Routes এর মতো ফিচারগুলো ব্যবহার করে আরো উন্নত রাউটিং কনফিগারেশন করা সম্ভব। এই কনফিগারেশনগুলো আপনার অ্যাপ্লিকেশনকে আরও ইউজার-ফ্রেন্ডলি এবং সুগম করে তোলে।